package  main.java.leetcode.editor.cn;
//2023-07-14 09:18:22
//给定一个字符串，编写一个函数判定其是否为某个回文串的排列之一。 
//
// 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 
//
// 回文串不一定是字典当中的单词。 
//
// 
//
// 示例1： 
//
// 输入："tactcoa"
//输出：true（排列有"tacocat"、"atcocta"，等等）
// 
//
// 
// Related Topics 位运算 哈希表 字符串 👍 114 👎 0

import java.util.HashMap;
import java.util.Map;

class PalindromePermutationLcci {
    public static void main(String[] args) {
        //创建该题目的对象方便调用
        Solution solution = new PalindromePermutationLcci().new Solution();
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean canPermutePalindrome(String s) {
        Map<Character,Integer> sign = new HashMap<>();
        int n = s.length();
        for(int i = 0;i<n;i++){
            sign.put(s.charAt(i),sign.getOrDefault(s.charAt(i),0)+1);
        }

        int flag = 0;
        for(int val : sign.values()){
            if(val % 2 != 0){
                flag++;
                if(flag > 1){
                    return false;
                }
            }
        }
        return true;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
